@@ -18,6 +18,7 @@ from coupon.models import UserCouponInfo  | 
            ||
| 18 | 18 | 
                from integral.models import SaleclerkSubmitLogInfo  | 
            
| 19 | 19 | 
                from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, DistributorInfo  | 
            
| 20 | 20 | 
                from member.models import GoodsOrderInfo  | 
            
| 21 | 
                +from logs.models import MchInfoEncryptLogInfo  | 
            |
| 21 | 22 | 
                from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo  | 
            
| 22 | 23 | 
                from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,  | 
            
| 23 | 24 | 
                ProductMachineStatusCode, UserStatusCode)  | 
            
                @@ -721,4 +722,41 @@ def member_goods_order_update(request):  | 
            ||
| 721 | 722 | 
                GoodsOrderInfo.objects.filter(pk=order_id, status=True).update(tracking_number=tracking_number)  | 
            
| 722 | 723 | 
                 | 
            
| 723 | 724 | 
                return response(200, 'Get Member Goods Order Update Success', u'获取会员商品订单修改成功')  | 
            
| 724 | 
                -  | 
            |
| 725 | 
                +  | 
            |
| 726 | 
                +def record_warehouse(request):  | 
            |
| 727 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 728 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 729 | 
                +    model_name = request.POST.get('model_name', '')
               | 
            |
| 730 | 
                +    sn = request.POST.get('sn', '')
               | 
            |
| 731 | 
                +    start_time = request.POST.get('start_time', '')
               | 
            |
| 732 | 
                +    end_time = request.POST.get('end_time', '')
               | 
            |
| 733 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 734 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 735 | 
                +  | 
            |
| 736 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 737 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 738 | 
                +  | 
            |
| 739 | 
                + try:  | 
            |
| 740 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 741 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 742 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 743 | 
                +  | 
            |
| 744 | 
                +    models = ModelInfo.objects.filter(model_name__icontains=model_name, status=True).values_list('pk', flat=True)
               | 
            |
| 745 | 
                + logs = MchInfoEncryptLogInfo.objects.filter(model_pk__in=models, sn__icontains=sn, status=True)  | 
            |
| 746 | 
                +  | 
            |
| 747 | 
                + if start_time and end_time:  | 
            |
| 748 | 
                + start_time = datetime.strptime(start_time, '%Y%m%d')  | 
            |
| 749 | 
                + end_time = datetime.strptime(end_time+' 23:59:59', '%Y%m%d %H:%M:%S')  | 
            |
| 750 | 
                + logs = logs.filter(created_at__range=(start_time, end_time))  | 
            |
| 751 | 
                +  | 
            |
| 752 | 
                +    logs = logs.order_by('-created_at')
               | 
            |
| 753 | 
                +  | 
            |
| 754 | 
                + count = logs.count()  | 
            |
| 755 | 
                + logs, left = pagination(logs, page, num)  | 
            |
| 756 | 
                + logs = [log.admindata for log in logs]  | 
            |
| 757 | 
                +  | 
            |
| 758 | 
                +    return response(200, 'Get Warehouse Record Success', u'获取入库记录成功', data={
               | 
            |
| 759 | 
                + 'logs': logs,  | 
            |
| 760 | 
                + 'left': left,  | 
            |
| 761 | 
                + 'count': count  | 
            |
| 762 | 
                + })  | 
            
                @@ -319,6 +319,7 @@ urlpatterns += [  | 
            ||
| 319 | 319 | 
                 | 
            
| 320 | 320 | 
                url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'),  | 
            
| 321 | 321 | 
                url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'),  | 
            
| 322 | 
                + url(r'^admin/record/warehouse$', admin_views.record_warehouse, name='record_warehouse'),  | 
            |
| 322 | 323 | 
                 | 
            
| 323 | 324 | 
                url(r'^admin/list/model$', admin_views.model_list, name='model_list'),  | 
            
| 324 | 325 | 
                url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'),  | 
            
                @@ -3,7 +3,9 @@  | 
            ||
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 5 | 
                from django_models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            
| 6 | 
                +from mch.models import ModelInfo, OperatorInfo  | 
            |
| 6 | 7 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 8 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 7 | 9 | 
                 | 
            
| 8 | 10 | 
                 | 
            
| 9 | 11 | 
                class MchInfoEncryptLogInfo(BaseModelMixin):  | 
            
                @@ -34,6 +36,23 @@ class MchInfoEncryptLogInfo(BaseModelMixin):  | 
            ||
| 34 | 36 | 
                 | 
            
| 35 | 37 | 
                def __unicode__(self):  | 
            
| 36 | 38 | 
                return unicode(self.pk)  | 
            
| 39 | 
                +  | 
            |
| 40 | 
                + @property  | 
            |
| 41 | 
                + def admindata(self):  | 
            |
| 42 | 
                + model = ModelInfo.objects.get(pk=self.model_pk, status=True)  | 
            |
| 43 | 
                + try:  | 
            |
| 44 | 
                + operator_name = OperatorInfo.objects.get(operator_id=self.operator_id).name  | 
            |
| 45 | 
                + except:  | 
            |
| 46 | 
                + operator_name = '深圳捷成'  | 
            |
| 47 | 
                +  | 
            |
| 48 | 
                +        return {
               | 
            |
| 49 | 
                + 'sn': self.sn,  | 
            |
| 50 | 
                + 'model_pk': self.model_pk,  | 
            |
| 51 | 
                + 'model_uni_name': model.model_uni_name,  | 
            |
| 52 | 
                + 'model_name': model.model_name,  | 
            |
| 53 | 
                + 'operator_name': operator_name,  | 
            |
| 54 | 
                + 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M:%S')  | 
            |
| 55 | 
                + }  | 
            |
| 37 | 56 | 
                 | 
            
| 38 | 57 | 
                 | 
            
| 39 | 58 | 
                class MchInfoDecryptLogInfo(BaseModelMixin):  |